/*****************************************
 *  测试发送短信      							 *
 *****************************************/
package com.company.base.utils;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.message.BasicNameValuePair;

/**
 * Description:
 * 
 * @version 1.0
 * @author MXM
 * @date: 2015/3/17
 */
public class SmsUtil{

	// #Mas WebService 地址
	public static final String MasWsUrl = "http://127.0.0.1:8000/services/cmcc_mas_wbs";
	// #应用ID或插件的ID
	public static final String ApplicationID = "P000000000000002";
	// #指由该应用填写的内部扩展号码。MAS服务器需自动补充为此业务分配的长服务号码
	public static final String ExtendCode = "0";
	// #短消息要被发送到的地址。群发短消息的最大数量为254
	public static final String Address = "tel:13915453880";
	/**
	 * #消息编码类型
	 * #ASCII	ASCII字符。
	 * #UCS2	USC2格式的UniCode字符。
	 * #GB18030	GB18030格式的中文字符。
	 * #GB2312	GB2312格式的中文字符。
	 * #Binary	二进制短信，用十六进制字符串。
	 */
	public static final String MessageFormats = "GB2312";
	/**
	 * #发送消息选项
	 * #Normal	普通短信
	 * #Instant	普通短信立即显示
	 * #Long	长短信
	 * #Structured	长度小于160字节，但UDHI需置为1
	 */
	public static final String SendMethod = "Long";
	// #指示是否需要网络侧返回递交状态报告。若无，则不返回。True表示需要网络侧返回递交状态报告，false表示不需要网络侧返回递交状态报告
	public static final String DeliveryResultRequest = "true";
	
	public static void main(String[] args) throws Exception {
		SmsUtil test = new SmsUtil();
		String[] telephone = Address.split(";");
		String result = test.sendSms("WebService测试短信11",telephone);
		System.out.println(result);
	}

	/**
	 * 发送短信
	 * @param message 消息内容
	 * @param telephone 接收短信的手机
	 * @return
	 */
//	public static String sendSms(String message, String[] telephone) {
//
//		String requestIdentifier = "";
//		URL url;
//		try {
//			url = new URL(MasWsUrl);
//			Service service = new Service();
//			SiMockStub stub = new SiMockStub(url, service);
//
//			SendSmsRequest s = new SendSmsRequest();
//			// 插件的ID
//			s.setApplicationID(ApplicationID);
//			// 返回递交状态报告
//			s.setDeliveryResultRequest(Boolean.parseBoolean(DeliveryResultRequest));
//			// 内部扩展号码
//			s.setExtendCode(ExtendCode);
//			//  消息内容
//			s.setMessage(message);
//			// 消息编码类型
//			s.setMessageFormat(MessageFormat.fromValue(MessageFormats));
//			// 发送消息选项
//			s.setSendMethod(SendMethodType.fromValue(SendMethod));
//			// 手机号码
//			int leng= telephone.length;
//			org.apache.axis.types.URI [] ary=new org.apache.axis.types.URI[leng];
//			for(int i=0;i<leng;i++){
//				org.apache.axis.types.URI temp=new org.apache.axis.types.URI(telephone[i]);
//				ary[i]=temp;
//			}
//			s.setDestinationAddresses(ary);
//			// 开始发送短信
//			SendSmsResponse rep = stub.sendSms(s);
//			requestIdentifier = rep.getRequestIdentifier();
//		} catch (Exception e) {
//			// 返回错误
//			e.printStackTrace();
//		}
//		return requestIdentifier;
//	}
	public  static String sendSms(String message, String[] telephone) {
		String result="";
		if(!CheckUtil.isEmpty(telephone)){
			//设置参数：message：信息。telephone：数组手机号。signature：签名验证
			List<NameValuePair> params = new ArrayList<NameValuePair>();
			params.add(new BasicNameValuePair("message", "message"));
			params.add(new BasicNameValuePair("signature", MD5Util.MD5(message+telephone[0]+"CSGA")));
			for (int i = 0; i < telephone.length; i++) {
				params.add(new BasicNameValuePair("telephone", telephone[i]));
			}
			try {
				//发送信息：url：systemconfig.properties中配置
				result=HttpUtil.requestPost("", params);
			} catch (ClientProtocolException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return result;
	}
}
